home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Archives / GNU / GNUPLOTsrc.lha / term / kyo.trm < prev    next >
Encoding:
Text File  |  1996-01-22  |  4.5 KB  |  194 lines

  1. /*
  2.  * $Id: kyo.trm,v 1.6 1995/12/20 21:47:57 drd Exp $
  3.  *
  4.  */
  5.  
  6. /* Prescribe (KYOCERA) driver - Michael Waldor */
  7. /* Modified for gnuplot 2.0 sk@sun4 24-Apr-1990 13:23 */
  8.  
  9. /*
  10.  * adapted to the new terminal layout by Stefan Bodewig (Dec. 1995)
  11.  */
  12.  
  13. #ifndef GOT_DRIVER_H
  14. #include "driver.h"
  15. #endif
  16.  
  17. #ifdef TERM_REGISTER
  18. register_term(prescribe)
  19. register_term(kyo)
  20. #endif
  21.  
  22. #ifdef TERM_PROTO
  23. TERM_PUBLIC void PRE_init __P((void));
  24. TERM_PUBLIC void KYO_init __P((void));
  25. TERM_PUBLIC void PRE_graphics __P((void));
  26. TERM_PUBLIC void PRE_text __P((void));
  27. TERM_PUBLIC void PRE_linetype __P((int linetype));
  28. TERM_PUBLIC void PRE_move __P((unsigned int x, unsigned int y));
  29. TERM_PUBLIC void PRE_vector __P((unsigned int x, unsigned int y));
  30. TERM_PUBLIC void PRE_put_text __P((unsigned int x, unsigned int y, char *str));
  31. TERM_PUBLIC int PRE_justify_text __P((enum JUSTIFY mode));
  32. TERM_PUBLIC void PRE_reset __P((void));
  33.  
  34. #define PRE_XMAX 2567
  35. #define PRE_YMAX 1815    /* X:Y = sqrt(2) */
  36.  
  37. #define PRE_VCHAR (PRE_YMAX/30)
  38. #define PRE_HCHAR 33    /* about 9 chars per inch */
  39. #define PRE_HTIC (PRE_XMAX/80)
  40. #define PRE_VTIC PRE_HTIC
  41.  
  42. /* for Courier font: */
  43. #define KYO_VCHAR (14*(300/72))    /* 12 pt + 2 pt baselineskip */
  44. #define KYO_HCHAR (300/10)    /*  10 chars per inch */
  45. #endif /* TERM_PROTO */
  46.  
  47. #ifndef TERM_PROTO_ONLY
  48. #ifdef TERM_BODY
  49.  
  50. #define PRE_XLAST (PRE_XMAX - 1)
  51. #define PRE_YLAST (PRE_YMAX - 1)
  52.  
  53. enum JUSTIFY pre_justify=LEFT;    /* text is flush left */
  54.  
  55. TERM_PUBLIC void PRE_init()
  56. {
  57.   (void) fprintf(outfile,"!R! RES;\n") ;
  58.   /* UNIT: units are dots, 300 dots = 1 in = 72 pt */
  59.   /* SPO: landscape format */
  60.   /* STM, SLM set top, left margin*/
  61.   /* Font: bold Helvetica (proportional font) */
  62.   (void) fprintf(outfile,"PAGE; UNIT D; SPO L; STM 280; SLM 440;\n") ;
  63.   (void) fprintf(outfile,"FTMD 15; FONT 29; SCPI 9;\n") ;
  64. }
  65.  
  66. TERM_PUBLIC void KYO_init()
  67. {
  68.   (void) fprintf(outfile,"!R! RES;\n") ;
  69.   /* UNIT: units are dots, 300 dots = 1 in = 72 pt */
  70.   /* SPO: landscape format */
  71.   /* STM, SLM set top, left margin */
  72.   /* Font: Courier (fixed width font) */
  73.   (void) fprintf(outfile,"PAGE; UNIT D; SPO L; STM 280; SLM 440;\n") ;
  74.   (void) fprintf(outfile,"FTMD 15; FONT 17; SCPI 10;\n") ;
  75. }
  76.  
  77. TERM_PUBLIC void PRE_graphics()
  78. {
  79. }
  80.  
  81. TERM_PUBLIC void PRE_text()            /* eject page after each plot */
  82. {
  83.   (void) fprintf(outfile,"PAGE;\n") ; 
  84. }
  85.  
  86. TERM_PUBLIC void PRE_linetype(linetype)
  87. int linetype ;
  88. {
  89.   /* actually choose pendiameter */
  90.   if (linetype < 0) linetype = -linetype;
  91.   else linetype = 3;
  92.   (void) fprintf(outfile,"SPD %d;\n", linetype) ;
  93. }
  94.  
  95. TERM_PUBLIC void PRE_move(x,y)
  96. unsigned int x,y ;
  97. {
  98.   (void) fprintf(outfile,"MAP %1d,%1d;\n",x,PRE_YMAX-y) ;
  99. }
  100.  
  101. TERM_PUBLIC void PRE_vector(x,y)
  102. unsigned int x,y ;
  103. {
  104.   (void) fprintf(outfile,"DAP %1d, %1d;\n",x,PRE_YMAX-y) ;
  105. }
  106.  
  107. TERM_PUBLIC void PRE_put_text(x, y, str)
  108. unsigned int x,y ;
  109. char *str;
  110. {
  111.   PRE_move(x,y);
  112.   switch(pre_justify){
  113.   case RIGHT:
  114.     (void) fprintf(outfile,"RTXT \"%s\", B;\n",str) ;
  115.     break;
  116.   default:
  117.     (void) fprintf(outfile,"TEXT \"%s\", B;\n",str) ;
  118.   }
  119. }
  120.  
  121. TERM_PUBLIC int PRE_justify_text(mode)
  122. enum JUSTIFY mode;
  123. {
  124.   pre_justify=mode;
  125.   switch(pre_justify){
  126.   case LEFT:
  127.   case RIGHT:
  128.     return(TRUE);
  129.   default:
  130.     return(FALSE);
  131.   }
  132.   
  133. }
  134.  
  135. TERM_PUBLIC void PRE_reset()
  136. {
  137.   (void) fprintf(outfile,"PAGE; RES; EXIT;\n");
  138. }
  139.  
  140. #endif /* TERM_BODY */
  141.  
  142. #ifdef TERM_TABLE
  143.  
  144. TERM_TABLE_START(prescribe_driver)
  145.     "prescribe", "Prescribe - for the Kyocera Laser Printer",
  146.     PRE_XMAX, PRE_YMAX, PRE_VCHAR, PRE_HCHAR, 
  147.     PRE_VTIC, PRE_HTIC, options_null, PRE_init, PRE_reset, 
  148.     PRE_text, null_scale, PRE_graphics, PRE_move, PRE_vector, 
  149.     PRE_linetype, PRE_put_text, null_text_angle, 
  150.     PRE_justify_text, line_and_point, do_arrow, set_font_null
  151. TERM_TABLE_END(prescribe_driver)
  152.  
  153. #undef LAST_TERM
  154. #define LAST_TERM prescribe_driver
  155.  
  156. TERM_TABLE_START(kyo_driver)
  157.     "kyo", "Kyocera Laser Printer with Courier font",
  158.     PRE_XMAX, PRE_YMAX, KYO_VCHAR, KYO_HCHAR, 
  159.     PRE_VTIC, PRE_HTIC, options_null, KYO_init, PRE_reset, 
  160.     PRE_text, null_scale, PRE_graphics, PRE_move, PRE_vector, 
  161.     PRE_linetype, PRE_put_text, null_text_angle, 
  162.     PRE_justify_text, line_and_point, do_arrow, set_font_null
  163. TERM_TABLE_END(kyo_driver)
  164.  
  165. #undef LAST_TERM
  166. #define LAST_TERM kyo_driver
  167.  
  168. #endif /* TERM_TABLE */
  169. #endif /* TERM_PROTO_ONLY */
  170.  
  171. /*
  172.  * NAME: prescribe
  173.  *
  174.  * OPTIONS: none
  175.  *
  176.  * SUPPORTS: Kyocera laser printer
  177.  *
  178.  * Further Info: Uses Helvetica font. There is also a terminal (kyo)
  179.  *         that uses Courier font.
  180.  *
  181.  */
  182.  
  183. /*
  184.  * NAME: kyo
  185.  *
  186.  * OPTIONS: none
  187.  *
  188.  * SUPPORTS: Kyocera laser printer
  189.  *
  190.  * Further Info: Uses Courier font. There is also a terminal (prescribe)
  191.  *         that uses Helvetica font.
  192.  *
  193.  */
  194.